/**
 * Copyright (C), 2015-2018, XXX有限公司
 * FileName: User
 * Author:   zhouheng
 * Date:     2018/6/18 11:10
 * Description: 登陆用户类
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.hengby.hengcrud.modular.sys.model;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.activerecord.Model;
import com.hengby.hengcrud.core.common.annotation.ExportConfig;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 〈一句话功能简述〉<br> 
 * 〈登陆用户类〉
 *
 * @author zhouheng
 * @create 2018/6/18
 * @since 1.0.0
 */
@TableName(value = "sys_user")
@Getter
@Setter
public class User extends Model<User> {

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    /**
     * 主键id
     */
    @TableId(value="id", type= IdType.AUTO)
    private Integer id;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 账号
     */
    @ExportConfig(value = "账户")
    private String account;
    /**
     * 密码
     */
    @ExportConfig(value = "密码",replace = "*******")
    private String password;
    /**
     * md5密码盐
     */
    private String salt;
    /**
     * 名字
     */
    @NotNull
    @ExportConfig(value = "名字")
    private String name;
    /**
     * 生日
     */
    @ExportConfig(value = "生日")
    private Date birthday;
    /**
     * 性别（1：男 2：女）
     */
    @ExportConfig(value = "性别",convert = "s:1=男,2=女")
    private Integer sex;
    /**
     * 电子邮件
     */
    @ExportConfig(value = "电子邮件")
    private String email;
    /**
     * 电话
     */
    @ExportConfig(value = "电话")
    private String phone;
    /**
     * 角色id
     */
    @ExportConfig(value = "角色名称",convert = "c:com.hengby.hengcrud.core.util.poi.convert.RoleConvert")
    private String roleid;
    /**
     * 部门id
     */
    @ExportConfig(value = "部门名称")
    private Integer deptid;
    /**
     * 状态(1：启用  2：冻结  3：删除）
     */
    @ExportConfig(value = "状态",convert = "s:1=启用,2=冻结,3=删除")
    private Integer status;
    /**
     * 创建时间
     */
    @ExportConfig(value = "创建时间",convert = "c:com.hengby.hengcrud.core.util.poi.convert.TimeConvert")
    private Date createtime;
    /**
     * 保留字段
     */
    private Integer version;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", avatar='" + avatar + '\'' +
                ", account='" + account + '\'' +
                ", password='" + password + '\'' +
                ", salt='" + salt + '\'' +
                ", name='" + name + '\'' +
                ", birthday=" + birthday +
                ", sex=" + sex +
                ", email='" + email + '\'' +
                ", phone='" + phone + '\'' +
                ", roleid='" + roleid + '\'' +
                ", deptid=" + deptid +
                ", status=" + status +
                ", createtime=" + createtime +
                ", version=" + version +
                '}';
    }

}